import Gps from './Gps.js'
import MapInfo from "@/view/Home/map/maptools/data/MapInfo";


export const toWgs84=(lat, lng)=>{
  if (new MapInfo().get().coordinateType == "WGS84"){
    return [lng,lat];
  }else if (new MapInfo().get().coordinateType == "GCJ02"){
    return solveGps0("GCJ02","WGS84",lat,lng);
  }else if (new MapInfo().get().coordinateType == "BD09"){
    return solveGps0("BD09","WGS84",lat,lng);
  }else{
    return [lng,lat];
  }
}

/**
 * 设备坐标系
 * @param deviceCoordinateType
 * @param lat
 * @param lng
 * @returns {[*, *]|[*, *]}
 */
export const solveGps=(deviceCoordinateType,lat, lng)=>{
  return solveGps0(
    deviceCoordinateType,
    new MapInfo().get().coordinateType,
    lat, lng
  )
}
/**
 * 坐标转换
 * @param deviceCoordinateType  设备坐标系
 * @param mapCoordinateType 地图坐标系
 * @param lat
 * @param lng
 */
export const solveGps0= (deviceCoordinateType,mapCoordinateType,lat, lng)=>{
  //console.log(">>>>>>> GpsUtils.solveGps0: 设备坐标系=%o,地图坐标系=%o ,原坐标",deviceCoordinateType,mapCoordinateType,[lat, lng])
  if (deviceCoordinateType == mapCoordinateType){
    return {'lat': lat, 'lon': lng};
  }else if (deviceCoordinateType=="WGS84" && mapCoordinateType == "GCJ02"){
    return new Gps().gps84ToGcj02(lat,lng)
  }else if (deviceCoordinateType=="GCJ02" && mapCoordinateType == "WGS84"){
    return new Gps().gcj02ToGps84(lat,lng)
  }else if (deviceCoordinateType=="WGS84" && mapCoordinateType == "BD09"){
    return new Gps().gps84ToBd09(lat,lng)
  }else if (deviceCoordinateType=="BD09" && mapCoordinateType == "WGS84"){
    return new Gps().bd09ToGps84(lat,lng)
  }else if (deviceCoordinateType=="GCJ02" && mapCoordinateType == "BD09"){
    return new Gps().gcj02ToBd09(lat,lng)
  }else if (deviceCoordinateType=="BD09" && mapCoordinateType == "GCJ02"){
    return new Gps().bd09ToGcj02(lat,lng)
  }else{
    //console.log(">>>>>>> GpsUtils.solveGps0错误, 设备坐标系=%o,地图坐标系=%o 没设置，返回原坐标",deviceCoordinateType,mapCoordinateType,[lng, lat])
    return {'lat': lat, 'lon': lng};
    //return [lng, lat]
  }
}

